Making Lambda Calculus Smaller, Faster

نویسندگان

  • Andrew W. Appel
  • Trevor Jim
چکیده

Some optimizations are speculative: they improve execution speed most but not all of the time, or they trade o faster execution for an increase in code size. Other optimizations, such as dead-variable elimination and algebraic simpli cation, are guaranteed to both reduce code size and speed execution. It makes sense to group all of these \contracting" optimizations together in a single phase of a compiler. This paper describes an e cient implementation of these optimizations for a language based on the lambda calculus, where a particularly interesting optimization of this sort is inlining for those functions called only once. And we prove that our contracting rewrites are con uent.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Visitor-Oriented Programming

Multiple dispatching and the visitor pattern are approaches to making object-oriented programs more extensible. Both have a flavor of pattern matching, thereby moving objectoriented programming closer to functional programming. The key idea of these approaches can be crystallized as a notion of visitor which lies between functions and objects. Can this idea be developed into a new form of visit...

متن کامل

Lambda Dependency-Based Compositional Semantics

This short note presents a new formal language, lambda dependency-based compositional semantics (lambda DCS) for representing logical forms in semantic parsing. By eliminating variables and making existential quantification implicit, lambda DCS logical forms are generally more compact than those in lambda calculus.

متن کامل

A Call-By-Need Lambda Calculus

The mismatch between the operational semantics of the lambda calculus and the actual behavior of implementations is a major obstacle for compiler writers. They cannot explain the behavior of their evaluator in terms of source level syntax, and they cannot easily compare distinct implementations of diierent lazy strategies. In this paper we derive an equational characterization of call-by-need a...

متن کامل

A Typed Lambda Calculus of Objects

In this paper, we present an explicitly typed version of the Lambda Calculus of Objects of [7], which is a development of the object-calculi defined in [10, 2]. This calculus supports object extension in presence of object subsumption. Extension is the ability of modify the behavior of an object by adding new methods (and inheriting the existing ones). Object subsumption allows to use objects w...

متن کامل

Nominal Henkin Semantics: simply-typed lambda-calculus models in nominal sets

We investigate a class of nominal algebraic Henkin-style models for the simply typed λ calculus in which variables map to names in the denotation and λ -abstraction maps to a (non-functional) name-abstraction operation. The resulting denotations are smaller and better-behaved, in ways we make precise, than functional valuation-based models. Using these new models, we then develop a generalisati...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1994